<?php
class abc
{
	protected $array = array();
	//当给不存在的属性赋值时 会自动调用set 方法
	public function __set($key,$value)
	{
		$this->array[$key] = $value;
	}
	//当取不存在的属性值时，会自动调用get方法
	public function __get($key)
	{
		return $this->array[$key];
	}
	//当类调用的方法不存在时会自动调用 __callstatic 用于静态方法
	public function __call($func,$param)
	{
		return $param;
	}
	//将对象转换为字符串
	public function __toString()
	{
		return $this;
	}
	//当将对象当成函数去调用的时候 会去自动调用__invoke方法
	public function __invoke($param)
	{
		return $param;
	}
}

$test = new abc();
$test -> title = 123;
echo $test->title;
$abc= $test->abc('aaa');
print_r($abc);